﻿namespace Sai.Core.Introspection
{
	/// <summary>
	/// Creates assembly info suitable for inspection from a binary assembly.
	/// </summary>
	[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Introspector", Justification = "It is spelled correctly")]
	public interface IAssemblyIntrospector
	{
		/// <summary>
		/// Examines assembly reflection info and creates an AssemblyIntrospection object.
		/// </summary>
		/// <param name="assembly">The product assembly to be reflected.</param>
		/// <returns>Loaded assembly info</returns>
		IntrospectedAssembly IntrospectAssembly(ProductAssembly assembly);
	}
}
